package rak.r91.service;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import rak.r91.dao.StoreDao;
import rak.r91.data.Item;
import rak.r91.data.ItemAction;
import rak.r91.data.ItemActionType;
import rak.r91.data.ItemActionTypeValues;
import rak.r91.data.ItemStore;
import rak.r91.data.Store;

public class SimpleStoreManager implements StoreManager{
	ApplicationContext context = new ClassPathXmlApplicationContext("conf/Spring-dao.xml");
	private StoreDao storeDao = (StoreDao) context.getBean("StoreDao");


	@Override
	public int register(ItemAction itemAction) {
		ItemActionType itemActionType = new ItemActionType();
		itemActionType.setItemActionTypeID(ItemActionTypeValues.REGISTER.getValue());
		ItemStore itemStore = new ItemStore();
		itemStore.setItem(itemAction.getItem());
		itemStore.setItemCount(itemAction.getItemCount());
		itemStore.setStore(itemAction.getStoreTo());
		storeDao.insertItemToStore(itemStore);
		itemAction.setItemActionType(itemActionType);
		storeDao.registerItemAction(itemAction);
		return 0;
	}

	@Override
	public int unregister(ItemAction itemAction, ItemStore itemStore) {
		ItemActionType itemActionType = new ItemActionType();
		itemActionType.setItemActionTypeID(ItemActionTypeValues.UNREGISTER.getValue());
		storeDao.removeItemFormStore(itemStore);
		itemAction.setItemActionType(itemActionType);
		storeDao.registerItemAction(itemAction);
		return 0;
	}

	@Override
	public int transfer(ItemAction itemAction, ItemStore itemStore) {
		ItemActionType itemActionType = new ItemActionType();
		itemActionType.setItemActionTypeID(ItemActionTypeValues.TRANSFER.getValue());
		itemAction.setItemActionType(itemActionType);
		//todo
		return 0;
	}

	@Override
	public List<Store> getStores() {
		return storeDao.getStores();
	}

	@Override
	public List<ItemStore> getStores(Item item) {
		return storeDao.getStores(item);
	}
	
}
